package com.eastfair.home.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.home.dto.ReportDrawingAuditDTO;
import com.eastfair.home.entity.ReportDrawingAudit;
import com.eastfair.home.vo.ReportDrawingAuditVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 报馆图纸审核记录
 * </p>
 *
 * @author dq
 * @date 2022-08-08
 */
public interface ReportDrawingAuditService extends SuperService<ReportDrawingAudit> {

    /**
     * 报馆图纸分类审核ID查询报馆图纸审核VO列表.
     *
     * @param reportDrawingCategoryAuditId the report drawing category audit id
     * @return the list
     */
    List<ReportDrawingAuditVO> listVOByReportDrawingCategoryAuditId(Long reportDrawingCategoryAuditId);

    /**
     * 报馆审核ID查询报馆图纸审核列表.
     *
     * @param reportSpaceAuditId the report space audit id
     * @return the list
     */
    List<ReportDrawingAudit> listByReportSpaceAuditId(Long reportSpaceAuditId);

    /**
     * 报馆ID查询报馆图纸审核列表.
     *
     * @param reportSpaceId the report space id
     * @return the list
     */
    List<ReportDrawingAudit> listByReportSpaceId(Long reportSpaceId);

    /**
     * 报馆图纸分类审核ID列表查询图纸审核列表.
     *
     * @param reportDrawingCategoryAuditIds the report drawing category audit ids
     * @return the list
     */
    List<ReportDrawingAudit> listByReportDrawingCategoryAuditIds(List<Long> reportDrawingCategoryAuditIds);

    /**
     * 查询报馆图纸审核列表.
     *
     * @param query the query
     * @return the list
     */
    List<ReportDrawingAudit> listReportDrawingAudit(ReportDrawingAuditDTO query);

    /**
     * 保存报馆图纸审核.
     *
     * @param reportDrawingAuditDTO the report drawing audit dto
     * @return the boolean
     */
    boolean saveReportDrawingAudit(ReportDrawingAuditDTO reportDrawingAuditDTO);

    /**
     * 批量保存图纸审核.
     *
     * @param list the list
     * @return the boolean
     */
    boolean saveReportDrawingAuditBatch(List<ReportDrawingAuditDTO> list);

    /**
     * 报馆审核ID批量删除报馆图纸.
     *
     * @param reportSpaceAuditId the report space audit id
     * @return the boolean
     */
    @Deprecated
    boolean removeBatchByReportSpaceAuditId(Long reportSpaceAuditId);

    /**
     * 报馆ID批量删除报馆图纸.
     *
     * @param reportSpaceId the report space id
     * @return the boolean
     */
    boolean removeBatchByReportSpaceId(Long reportSpaceId);

    /**
     * 报馆ID和图纸类型ID 批量删除图纸.
     *
     * @param reportSpaceId         the report space id
     * @param drawingCategoryIdList the drawing category id list
     * @return the boolean
     */
    boolean removeBatchByReportSpaceIdAndDrawingCategoryId(Long reportSpaceId, List<Long> drawingCategoryIdList);
}
